`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2021/12/28 19:29:16
// Design Name: 
// Module Name: test
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module test;
logic clk;
logic rst;
logic gmii_vld;
logic [7:0] gmii_data;
logic arp_rx_done;
logic arp_rx_type;
logic [47:0] src_mac;
logic [31:0] src_ip;
logic arp_tx_en;
logic arp_tx_type;
logic [47:0] des_mac;
logic [31:0] des_ip;
logic [31:0] crc_data;
logic tx_done;
//clk
initial begin
    clk=0;
    forever begin
        #5 clk=~clk;
    end
end
//rst
initial begin
    rst=1;
    #50
    rst=0;
end
//arp_tx_en
initial begin
    arp_tx_en=0;
    #200
    arp_tx_en=1;
    #10
    arp_tx_en=0;
end
//arp_tx_type
initial begin
    arp_tx_type=1;           //0：请求，1：应答
end
//des_mac
initial begin
    des_mac=48'h00_11_22_33_44_55;
    //des_mac=48'hff_ff_ff_ff_ff_ff;
end
//des_ip
initial begin
    des_ip={8'd192,8'd168,8'd1,8'd102};
end
//crc_data
initial begin
    crc_data=32'h01234567;
end
//

arp_rx 
#(
.BOARD_MAC(48'h00_11_22_33_44_55),
.BOARD_IP({8'd192,8'd168,8'd1,8'd102})
) 
U(
.clk(clk)        , 
.rst(rst)       ,                           
.gmii_rx_dv(gmii_vld) , 
.gmii_rxd(gmii_data)   , 
.arp_rx_done(arp_rx_done),              //arp接受完成标志
.arp_rx_type(arp_rx_type),              //arp类型，0：请求，1：应答
.src_mac(src_mac)    ,              //源MAC
.src_ip(src_ip)                    //源IP
    );

arp_tx 
#(
.BOARD_MAC(48'haa_bb_cc_dd_ee_ff),
.BOARD_IP({8'd192,8'd168,8'd1,8'd10})
) 
V(
.clk(clk)        , //
.rst(rst)        , //
.arp_tx_en(arp_tx_en)  , //ARP发送使能
.arp_tx_type(arp_tx_type), //ARP类型，0为请求，1为应答
.des_mac(des_mac)    , //目的MAC
.des_ip(des_ip)     , //目的IP
.crc_data(crc_data)   , //CRC校验码
.tx_done(tx_done)    , //发送完成标志
.gmii_tx_en(gmii_vld) , //GMII接口
.gmii_txd(gmii_data)     //GMII接口
    );
endmodule
